package com.hsjk.szwj.module.train.service;

import com.hsjk.szwj.module.train.controller.app.vo.collect.AppMemberCourseCollectRecordCreateOrUpdateReqVO;
import com.hsjk.szwj.module.train.controller.app.vo.question.AppMemberCollectActionChapterRespVO;
import com.hsjk.szwj.module.train.controller.app.vo.question.AppMemberCollectQuestionReqVO;
import com.hsjk.szwj.module.train.controller.app.vo.question.AppMemberCollectQuestionRespVO;
import com.hsjk.szwj.module.train.controller.app.vo.question.AppMemberCourseCollectQuestionReqVO;
import com.hsjk.szwj.module.train.controller.app.vo.question.AppMemberCourseErrorQuestionReqVO;
import com.hsjk.szwj.module.train.controller.app.vo.question.AppMemberErrorActionChapterReqVO;
import com.hsjk.szwj.module.train.controller.app.vo.question.AppMemberErrorActionChapterRespVO;
import com.hsjk.szwj.module.train.controller.app.vo.question.AppMemberErrorQuestionRespVO;

import java.util.List;

/**
 * @author chenjiawei
 * @desc
 * @Date 2023/11/03 17:14
 **/
public interface IMemberRecordService {
    /**
     * 创建/更新用户课程收藏记录
     *
     * @param reqVO
     * @return java.lang.Boolean
     * @author chenjiawei
     * @date 2023/11/3 5:40 PM
     **/
    Boolean createOrUpdateMemberCollectCourseRecord(AppMemberCourseCollectRecordCreateOrUpdateReqVO reqVO);

    /**
     * 根据课程id获取当前用户错题信息
     *
     * @param courseId
     * @return com.hsjk.szwj.module.train.controller.app.vo.question.AppMemberErrorActionChapterRespVO
     * @author chenjiawei
     * @date 2023/11/4 12:40 AM
     **/
    List<AppMemberErrorQuestionRespVO> getMemberChapterErrorQuestionByCourseId(Long courseId);

    /**
     * 根据课程id获取当前用户收藏信息
     *
     * @author chenjiawei
     * @date 2023/11/4 10:43 AM
     * @param courseId
     * @return java.util.List<com.hsjk.szwj.module.train.controller.app.vo.question.AppMemberCollectQuestionRespVO>
     **/
    List<AppMemberCollectQuestionRespVO> getMemberChapterCollectQuestionByCourseId(Long courseId);

    /**
     * 根据课程id获取当前用户错题章节题目
     *
     * @author chenjiawei
     * @date 2023/11/4 3:11 PM
     * @param reqVO
     * @return java.util.List<com.hsjk.szwj.module.train.controller.app.vo.question.AppMemberErrorActionChapterRespVO>
     **/
    List<AppMemberErrorActionChapterRespVO> getMemberErrorChapterByCourseId(AppMemberErrorActionChapterReqVO reqVO);

    /**
     * 根据课程id获取当前用户收藏章节题目
     *
     * @author chenjiawei
     * @date 2023/11/4 10:46 AM
     * @param reqVO
     * @return java.util.List<com.hsjk.szwj.module.train.controller.app.vo.question.AppMemberCollectActionChapterRespVO>
     **/
    List<AppMemberCollectActionChapterRespVO> getMemberCollectChapterByCourseId(AppMemberCollectQuestionReqVO reqVO);

    /**
     * 获取课程下指定章节的错题集合
     *
     * @param reqVO
     * @return java.util.List<com.hsjk.szwj.module.train.controller.app.vo.question.AppMemberCourseErrorQuestionRespVO>
     * @author chenjiawei
     * @date 2023/11/4 1:10 AM
     **/
    List<Long> getMemberCourseErrorQuestionIdList(AppMemberCourseErrorQuestionReqVO reqVO);
    /**
     *  获取课程下指定章节的收藏集合
     *
     * @author chenjiawei
     * @date 2023/11/4 3:36 PM
     * @param reqVO
     * @return java.util.List<com.hsjk.szwj.module.train.controller.app.vo.question.AppMemberCourseCollectQuestionRespVO>
     **/
    List<Long> getMemberCourseCollectQuestionIdList(AppMemberCourseCollectQuestionReqVO reqVO);
}
